[% setvar title Meanwhile, in perl6-language %]
<div id="archive-notice">
    <h3>This file is part of the Perl 6 Archive</h3>
    <p>To see what is currently happening visit <a href="http://www.perl6.org/">http://www.perl6.org/</a></p>
</div>
<div class='pod'>
<a name='The Perl 6 Summary for the week ending 2004-05-02'></a><h2>The Perl 6 Summary for the week ending 2004-05-02</h2>
<p>So, May Day didn't quite knock me for six this year (but being up at 4am
on Newcastle Town Moor on Saturday morning to welcome in the summer with
a bunch of rapper dancers (and no, rapper does not involve large shouty
men wearing positively kitsch amounts of jewellery posturing in front of
scantily clad women and shouting about how they're keeping it real, or
whatever the current argot is. It's a rather older tradition of men
making fools of themselves than that) is guaranteed to leave a chap
feeling rather tired) so here's the summary.</p>
<p>We'll kick off with perl6-internals. Again.</p>
<a name='GCC for Parrot'></a><h2>GCC for Parrot</h2>
<p>Vishal Vatsa announced that he was working on getting GCC to compile to
Parrot as his masters research project. I'm sure we're all wishing him
the best of luck.</p>
<p><a href='http://groups.google.com/groups?selm=200404291641.55582.vishal.vatsa@may.ie' target='_blank'>groups.google.com</a></p>
<a name='Parrot strings'></a><h2>Parrot strings</h2>
<p>Various discussions of the Right Way to do string handling
continued. Dan clarified his Strings design docs and Jeff Clites posted
a 'Strings Manifesto'.</p>
<p>It seems, to this observer at least, that a big problem with dealing
with strings is that there's rather more than one Right Way to do
things, depending on how you're looking at the problem and what you're
trying to do. Dan's problem is that he has to find some way of
accommodating all the various contradictory things that people want to
do to strings without making any of them unduly painful. (Not assisted
by the fact that, in one last week's documents he managed to graphemes,
characters and glyphs slightly mixed up.)</p>
<p>Me? I'm punting on summarizing this properly. My theory is that if you
know enough about this stuff to be of assistance then anything I say
will almost certainly be an annoying simplification too far. And if you
both know enough about strings and care enough about Parrot, you're
already involved in the thread. Hopefully there'll come a point in the
future when everything's settled and this section of the summary will
say &quot;Strings got sorted at last, look at this URL for details&quot;.</p>
<p><a href='http://groups.google.com/groups?selm=1082943293.6126.31.camel@wakko' target='_blank'>groups.google.com</a></p>
<p><a href='http://groups.google.com/groups?selm=8DE3A940-9869-11D8-88D8-000393A6B9DA@mac.com' target='_blank'>groups.google.com</a></p>
<p><a href='http://groups.google.com/groups?selm=488F0B8B-9906-11D8-88D8-000393A6B9DA@mac.com' target='_blank'>groups.google.com</a> -- Strings Manifesto</p>
<p><a href='http://groups.google.com/groups?selm=FE6307104985D611A92A0002A5F3AB00B9D90F@exch1.Sterling.COM' target='_blank'>groups.google.com</a></p>
<p><a href='http://groups.google.com/groups?selm=675F9A7A-9ABC-11D8-88D8-000393A6B9DA@mac.com' target='_blank'>groups.google.com</a></p>
<a name='Win32 and cygwin issues'></a><h2>Win32 and cygwin issues</h2>
<p>There's been a good deal of work this week on getting things building
properly in the Win32 and cygwin environments. Ron Blaschke, 'Limbic
Region', George R and Leo Tötsch all worked on things.</p>
<p><a href='http://groups.google.com/groups?selm=1w763i4oy4k22.1q6kzorxl9k43$.dlg@40tude.net' target='_blank'>groups.google.com</a></p>
<p><a href='http://groups.google.com/groups?selm=20040426124840.81742.qmail@onion.perl.org' target='_blank'>groups.google.com</a></p>
<a name='NCI and 'Out' parameters'></a><h2>NCI and 'Out' parameters</h2>
<p>Mr ParrotSDL (aka chromatic) showed an SDL function signature that he
wanted to use via NCI (Parrot's Native Call Interface), but which
didn't work because it had two pointer arguments that were used by the
function as out parameters. He proposed changing the NCI PDD (PDD16)
to support this sort of thing cleanly. Leo, Dan, Tim Bunce and
chromatic discussed the changes needed.</p>
<p>A little later in the week, chromatic posted a patch implementing
something to solve the problem.</p>
<p><a href='http://groups.google.com/groups?selm=rt-3.0.8-29200-86258.1.8350349802563@perl.org' target='_blank'>groups.google.com</a></p>
<p><a href='http://groups.google.com/groups?selm=rt-3.0.9-29261-86499.1.95148647858417@perl.org' target='_blank'>groups.google.com</a></p>
<a name='Joys of assignment'></a><h2>Joys of assignment</h2>
<p>There's been some discussion recently about what happens with assignment
and/or binding, and the difference between value and reference
types. Dan decided that the time was right to post a clarification of
the issues as they related to Parrot.</p>
<p><a href='http://groups.google.com/groups?selm=a06100503bcb2b791bb31@' target='_blank'>groups.google.com</a>[10.0.1.2]</p>
<a name='Fun with md5sum'></a><h2>Fun with md5sum</h2>
<p>Nick Glencross's idea of fun is, apparently, implementing md5sum in
IMCC. He posted his first cut at an implementation. I think Leo's
response holds for all of us: &quot;Wow&quot;. Maybe I'm looking in all the wrong
places, but so far it doesn't appear to be in the repository, but it
can only be a matter of time.</p>
<p><a href='http://groups.google.com/groups?selm=408E7518.3040204@glencros.demon.co.uk' target='_blank'>groups.google.com</a></p>
<a name='Return continuation register'></a><h2>Return continuation register</h2>
<p>Dan's working through outstanding issues and tidying up loose ends. One
result of this is that he's been thinking about how the return
continuation is handled. The new design (and calling conventions?)
makes use of a return register in the interpreter structure, which gets
saved as part of the environment that a continuation captures.</p>
<p><a href='http://groups.google.com/groups?selm=a06100504bcb5741843e2@' target='_blank'>groups.google.com</a>[10.0.1.3]</p>
<a name='Library loading'></a><h2>Library loading</h2>
<p>Clearing up another loose end, Dan did some design of how we're going
to cope with loading libraries.</p>
<p><a href='http://groups.google.com/groups?selm=a06100506bcb5783a3bf6@' target='_blank'>groups.google.com</a>[10.0.1.3]</p>
<a name='Keyed vtables and MMD'></a><h2>Keyed vtables and MMD</h2>
<p>If you've been following the mailing list for any length of time
(especially if you've been following it directly rather than
summarized), you'll be aware that there's been a long
running... discussion between Leo and Dan about the keyed variants of
all the binary vtable entries: Leo worries that there's a heck of a lot
of 'em; Dan worries that it means creating temporary PMCs in what
should be simple circumstances.</p>
<p>It turns out that having *all* the keyed variants does rather get in
the way of multi-method dispatch. So Dan's mandated that get rid of the
keyed variants for everything but get and set and move all the operator
functions out of the vtable and into the Multi method dispatch
system. He asked for comments...</p>
<p>It turns out that moving to MMD everywhere doesn't seem to have any
deleterious effect on performance, which is nice. In fact, in some
cases it's faster.</p>
<p><a href='http://groups.google.com/groups?selm=a06100507bcb57c1f2582@' target='_blank'>groups.google.com</a>[10.0.1.3]</p>
<a name='File stat info'></a><h2>File stat info</h2>
<p>Tying up another loose end, Dan specced out how <code>stat</code> is going to
work. It was modified (slimmed down rather a lot) after discussion.</p>
<p><a href='http://groups.google.com/groups?selm=a06100508bcb580d740bf@' target='_blank'>groups.google.com</a>[10.0.1.3]</p>
<a name='One more thing'></a><h2>One more thing</h2>
<p>Dan noted that, by going MMD all the way, it means we can skip the
bytecode-&gt;C-&gt;bytecode transition for MMD functions that are written in
Parrot bytecode and just dispatch to them as if they were any other
sub.</p>
<p><a href='http://groups.google.com/groups?selm=a06100514bcb59e5f2c78@' target='_blank'>groups.google.com</a>[10.0.1.3]</p>
<a name='MMD table setup semantics'></a><h2>MMD table setup semantics</h2>
<p>Dan opened a discussion of what should happen when we add things to a
Multimethod dispatch table. Discussion followed.</p>
<p><a href='http://groups.google.com/groups?selm=a0610051fbcb5ccc30c12@' target='_blank'>groups.google.com</a>[10.0.1.3]</p>
<a name='Double-checking compiler function parameters'></a><h2>Double-checking compiler function parameters</h2>
<p>Dan thought allowed about what a compiler module should look like and
asked for comments. Leo and Stefan Lidman came through with some.</p>
<p><a href='http://groups.google.com/groups?selm=a06100500bcb5f513ba06@' target='_blank'>groups.google.com</a>[172.24.18.98]</p>
<a name='Pointer stores and DOD'></a><h2>Pointer stores and DOD</h2>
<p>Dan reckons the time has come to make sure that all stores of pointers
to DOD-able structures into DOD-able places are done with a mediating
function (or macro). The idea is that doing this will allow us to
experiment with other Garbage Collection techniques without having to
change vast amounts of code.</p>
<p><a href='http://groups.google.com/groups?selm=a06100507bcb6b53a9126@' target='_blank'>groups.google.com</a>[172.24.18.98]</p>
<a name='TODO: Forth as a compiler module'></a><h2>TODO: Forth as a compiler module</h2>
<p>Dan laid down a TODO challenge: Your mission, should you choose to
accept it, is to take <b><i>languages/forth/forth.pasm</i></b> into a loadable
compiler module that you can compile workable forth code with. Go to it!</p>
<p><a href='http://groups.google.com/groups?selm=a0610050abcb6c35b983c@' target='_blank'>groups.google.com</a>[172.24.18.98]</p>
<a name='Outstanding parrot issues'></a><h2>Outstanding parrot issues</h2>
<p>Roll up! Roll up! Come and see the Ponie trainer and the Patchmonster
engage in a free and frank exchange of views!</p>
<p>Well, maybe not quite that extreme. Nicholas Clark, Arthur Bergman and
Leo Tötsch have had a long standing disagreement about how Parrot's
embedding works.</p>
<p>Because of the weekend falling when it did, you'll get the resolution
next week.</p>
<p><a href='http://groups.google.com/groups?selm=200404301154.i3UBswu13339@thu8.leo.home' target='_blank'>groups.google.com</a></p>
<a name='Meanwhile, in perl6-language'></a><h1>Meanwhile, in perl6-language</h1>
<a name='A12 Versioning'></a><h2>A12 Versioning</h2>
<p>Richard Proctor isn't happy with the A12 versioning proposal, and he
said as much, outlining what he didn't like about it. Aldo Calpini had
some further comments. Larry came through with answers.</p>
<p><a href='http://groups.google.com/groups?selm=Marcel-1.53-0426142012-9eeRr9i@waveney.org' target='_blank'>groups.google.com</a></p>
<a name='Compatibility with Perl 5'></a><h2>Compatibility with Perl 5</h2>
<p>The discussion of how to write identify Perl 6 and Perl 5 scripts
continued. Larry suggested moving to using <code>:</code> as the command line
switch in Perl 6, so a minimal Perl 6 marker would be something like:</p>
<pre>    #!/usr/bin/perl :
    #!/usr/bin/perl ::
    #!/usr/bin/perl :6</pre>
<p>Jonathan Scott Duff doesn't like using shifted characters to for
commandline switches, so he suggested using <code>=</code> instead. Other options
were suggested...</p>
<p><a href='http://groups.google.com/groups?selm=20040426174457.GA1417@wall.org' target='_blank'>groups.google.com</a></p>
<a name='On inheriting wrappers'></a><h2>On inheriting wrappers</h2>
<p>Aldo Calpini had some questions about using wrappers with methods, and
whether wrappers got inherited. I must confess I didn't quite follow
the discussion, but Larry seemed to.</p>
<p><a href='http://groups.google.com/groups?selm=1083316495.3463.158.camel@localhost' target='_blank'>groups.google.com</a></p>
<a name='Hey look everyone, p6stories!'></a><h2>Hey look everyone, p6stories!</h2>
<p>Now that we have Apocalypses 1-6 and 12, that could be seen as having
most of the language done. So chromatic pointed everyone at the P6
stories Wiki and suggested that they join the effort of breaking the
apocalypses up into stories and (hopefully) test cases, to help make
the job of writing Perl 6 itself much easier.</p>
<p><a href='http://p6stories.kwiki.org/' target='_blank'>p6stories.kwiki.org</a></p>
<a name='How to parameterize roles'></a><h2>How to parameterize roles</h2>
<p>Austin Hastings wondered how/if he could implement a parameterized
role. Luke Palmer had some answers, and some unsolicited (but rather
useful) design advice. Aaron Sherman also had some design advice.</p>
<p><a href='http://groups.google.com/groups?selm=ICELKKFHGNOHCNCCCBKFCECFCMAA.Austin_Hastings@Yahoo.com' target='_blank'>groups.google.com</a></p>
<a name='Announcements, Acknowledgements, Apologies'></a><h1>Announcements, Acknowledgements, Apologies</h1>
<p>If you find these summaries useful or enjoyable, please consider
contributing to the Perl Foundation to help support the development of
Perl. You might also like to send me feedback at
mailto:<a href='mailto:pdcawley@bofh.org.uk'>pdcawley@bofh.org.uk</a></p>
<p><a href='http://donate.perl-foundation.org/' target='_blank'>donate.perl-foundation.org</a> -- The Perl Foundation</p>
<p><a href='http://dev.perl.org/perl6/' target='_blank'>dev.perl.org</a> -- Perl 6 Development site</p>
</div>
